// 引入Vuex核心库及状态持久化插件
import { createStore } from 'vuex'
import createPersistedState from 'vuex-persistedstate'

// 创建并导出Vuex Store实例
export default createStore({
  // 应用的状态存储（数据源）
  state: {
    isGetterRouter: false, // 标记是否已获取路由配置（不可持久化，避免刷新后逻辑异常）
    isCollapsed: false,    // 侧边栏折叠状态（可持久化，记忆用户设置）
    userInfo: {},          // 用户信息对象（包含角色、用户名等）
    identity: ''           // 用户身份标识（如学生/教师）
  },
 
  // 唯一允许修改state的方法（同步操作）
  mutations: {
    // 更新路由配置状态
    changeGetterRouter(state, value) {
      state.isGetterRouter = value
    },
    // 切换侧边栏折叠状态
    changeCollapsed(state) {
      state.isCollapsed = !state.isCollapsed
    },
    // 合并更新用户信息（保留原有属性）
    changeUserInfo(state, value) {
      state.userInfo = { ...state.userInfo, ...value }
    },
    // 清空用户信息（用于退出登录）
    clearUserInfo(state) {
      state.userInfo = {}
    }
  },
  // 插件配置（启用状态持久化）
  plugins: [
    createPersistedState({
      paths: ['isCollapsed', 'userInfo', 'identity'] // 指定需要持久化的状态字段
    })
  ]
})